The present invention relates generally to methods and apparatus for preparing applications and other material for use in pointer-based computer systems such as pen-based computers. More specifically, the invention relates to graphical methods and apparatus for preparing "packages" used by a pointer-based computer for routing data and/or applications.
A pen-based computer is a small, often hand-held, computer system in which the primary method for inputting data includes a "pen" or stylus. A typical pen-based computer system is housed in a generally rectangular enclosure, and has a dual-function display assembly providing a viewing screen along one of the planar sides of the enclosure. The dual-function display assembly serves as both an input device and an output device. When operating as an input device, the display assembly senses the position of the tip of the stylus on the viewing screen and provides this positional information to the computer's central processing unit (CPU). Some display assemblies can also sense the pressure of the stylus on the screen to provide further information to the CPU. When operating as an output device, the display assembly presents computer-generated images on the screen.
The dual-function display assemblies of pen-based computer systems permit users to operate the computers as a computerized notepads. For example, graphical images can be input into the pen-based computer by merely moving the stylus on the surface of the screen. As the CPU senses the position and movement of the stylus, it generates a corresponding image on the screen to create the illusion that the stylus is drawing the image directly upon the screen. With suitable recognition software, text and numeric information can also be entered into the pen-based computer system in a similar fashion. Once input into the pen-based computer, the information can be manipulated in much the same manner as information input into conventional computer systems. One commercially-available pen-based computer, the "Newton" from Apple Computer, Inc., Cupertino, Calif., employs "packages" of data having defined structures to route applications and data used by applications and utilities throughout the system.
Pen-based computer systems have many uses: they can be used to jot down notes at meetings, organize to-do lists, send and receive information by faxing, electronic mail, etc. These functions can be accomplished with the aid of graphical interface elements such as slide bars, buttons, check boxes, icons, menus, etc. Because these computer systems are intended to be flexible tools suitable for use by a wide range of users, it would be desirable if the user/developer could quickly and easily construct his or her own application incorporating standard graphical elements. This would be especially desirable in pen-based computer systems which recognize handwritten instructions and allow the user to scribble handwritten notes and interact with "live" screens which might be incorporated into the applications.
Some high-level environments are available to assist developers in preparing and debugging applications for computers having conventional graphical user interfaces. In some of these environments, the user is provided with a "browser" which is a window containing lists from which the developer can select a desired graphical interface element to edit and/or modify in an editing region of the browser. An example of one such system is the "Object Master" available from Acius which is used for developing high-level applications for the Macintosh computer (Apple Computer, Inc., Cupertino, Calif.). Typically, only text can be edited in the browsers available in such development environments. Thus, development of a graphical interface-based program--such as those useful for many pen-based computers--can be quite tedious.
The same development environments sometimes include "layout windows" representing the display screen of a computer in which the application under development will execute. The developer can incorporate representations of various graphical interface elements (such as the buttons, check boxes, dialog boxes, etc. mentioned above) in the layout window. Unfortunately, such layout windows can become quite cluttered during the development of complicated applications.
In view of the above shortcomings of existing development environments, it would be desirable to have a development environment in which the user had considerable flexibility to prepare complicated graphical user interfaces for, e.g., pen-based computer applications.